﻿#pragma once
#include "TOOLBOX4Doc.h"
#include "TOOLBOX4View.h"
#include "WebModule.h"
#include <vector>
//#include "LogAnalyze.h"

// CPage4

class CPage4 : public CWnd
{
	DECLARE_DYNAMIC(CPage4)

public:
	CPage4();
	virtual ~CPage4();

public:
	void ShowBack(HDC HdestDC);
	void ShowPane(BOOL flag, HDC hDC, CRect rt);
	void ShowCancelBtn(BOOL flag, HDC hDC);
	void ShowOKBtn(BOOL flag, HDC hDC);
	

public:
	static CTOOLBOX4View * m_pView;

	CFont m_font;
	CFont m_FontAll;

	static CPage5 * m_pPage5;

	//CWebModule *WebMod;
	CWebModule *m_WebMod;

	// 背景
	CImage m_imgBack;
	int m_nBackWidth;
	int m_nBackHeight;

	// 确定按钮
	CImage m_imgOKBtn_off;
	CImage m_imgOKBtn_on;
	CRect m_rtOKBtn;
	int m_nOKBtnWidth;
	int m_nOKBtnHeight;

	// 取消按钮
	CImage m_imgCancelBtn_off;
	CImage m_imgCancelBtn_on;
	CRect m_rtCancelBtn;
	int m_nCancelWidth;
	int m_nCancelHeight;

	// 线程句柄
	HANDLE m_TimerThread;
	UINT_PTR m_TimerID;

	// 选择框 未选择状态
	CImage m_imgPane;
	// 选择框 已选择状态
	CImage m_imgPane_ok;
	// 选择框的宽高， 两种状态大小相同
	int m_nPaneWidth;
	int m_nPaneHeight;

	CDateTimeCtrl *m_pBeginTime;
	CDateTimeCtrl *m_pEndTime;
	static std::vector<CString>m_Viruspathlists;
	// 记录用户选择的开始时间和结束时间
	static CTime m_stBegTime;
	static CTime m_stEndTime;

	// 选择框位置， 两种状态位置相同
	CRect m_rtWEBPane;
	CRect m_rtHostLogPane;
	CRect m_rtFileOperationPane;
	CRect m_rtInterPane;
	CRect m_rtPortPane;
	CRect m_rtProcessPane;
	CRect m_rtServicePane;
	CRect m_rtSoftWarePane;
	CRect m_rtAccountPane;
	CRect m_rtFileSharePane;
	CRect m_rtUSBPane;
	CRect m_rtPaneAllSel1;		// 采集项 全选1	  // 主机资产采集分析
	CRect m_rtPaneAllSel2;		// 采集项 全选2	  // 系统信息采集分析
	CRect m_rtPaneAllSel3;		// 采集项 全选3   // web信息采集分析
	CRect m_rtPaneAllSel4;		// 采集项 全选4	  // 数据库日志采集分析
	CRect m_rtPaneAllSel5;	   // 采集项 全选5	  // Windows日志采集分析
	CRect m_rtPaneAllSel6;	   // 采集项 全选6	  // 磁盘文件信息采集分析
	CRect m_rtPaneAllSel7;	   // 采集项 全选6	  // 其他信息采集分析

	CRect m_rtUSNPane;//usn记录
	CRect m_rtarpPane;//arp记录
	CRect m_rtDNSPane;//dns记录
	CRect m_rtLogPolicyPane;//日志策略
	CRect m_rtPathInfoPane;//系统补丁
	CRect m_rtFileInfoPane;//磁盘文件
	CRect m_rtMemoryPane;//内存镜像
	CRect m_rtStartUpPane;//启动项
	CRect m_rtTaskListPane;//计划任务
	CRect m_rtHostBasePane;//基础信息
	CRect m_rtNetWorkCardPane;//网卡
	CRect m_rtWirelessPane;//无线通讯设备
	CRect m_rtDBLogPane;//数据库日志
	CRect m_rtHardwarePane;//硬件信息
	CRect m_rtClipboardPane;//剪切板
	// 盘符 
	CRect m_rtDisk1;
	CRect m_rtDisk2;
	CRect m_rtDisk3;
	CRect m_rtDisk4;
	CRect m_rtDisk5;
	CRect m_rtDisk6;
	CRect m_rtDisk7;
	CRect m_rtDisk8;
	CRect m_rtDiskAll;

	CStatic * m_stcDisk1;
	CStatic * m_stcDisk2;
	CStatic * m_stcDisk3;
	CStatic * m_stcDisk4;
	CStatic * m_stcDisk5;
	CStatic * m_stcDisk6;
	CStatic * m_stcDisk7;
	CStatic * m_stcDisk8;
	CStatic * m_stcDiskAll; // 全选

	CStatic * m_stcWebFile;
	CStatic * m_stcHostLog;
	CStatic * m_stcDbLog;
	CStatic * m_stcFileTrace;
	CStatic * m_stcNetTrace;
	CStatic * m_stcPort;
	CStatic * m_stcProcess;
	CStatic * m_stcService;
	CStatic * m_stcSoftWare;
	CStatic * m_stcAccountSec;
	CStatic * m_stcFileShare;
	CStatic * m_stcUSBTrace;
	CStatic * m_stcUSNTrace;
	CStatic * m_stcARPTrace;
	CStatic * m_stcDNSTrace;
	CStatic * m_stcLogPolicyTrace;
	CStatic * m_stcPathInfoTrace;
	CStatic * m_stcFileInfoTrace;
	CStatic * m_stcMemory;
	CStatic * m_stcStartUpTrace;
	CStatic* m_stcHardwareTrace;
	CStatic * m_stcTaskListTrace;
	CStatic * m_stcHostBaseTrace;
	CStatic * m_stcDbLogTrace;
	CStatic * m_stcDiskAllSel;	// 盘符 全选
	CStatic * m_stcAllSelCol1;	// 采集项 第1列 全选 // 主机资产采集分析
	CStatic * m_stcAllSelCol2;	// 采集项 第2列 全选 // 系统信息采集分析
	CStatic * m_stcAllSelCol3;	// 采集项 第3列 全选 // web信息采集分析
	CStatic* m_stcAllSelCol4;   // 采集项       全选 // 数据库日志采集分析
	CStatic * m_stcAllSelCol5;   // 采集项       全选 // Windows日志采集分析
	CStatic* m_stcAllSelCol6;   // 采集项       全选 // 磁盘文件信息采集分析
	CStatic* m_stcAllSelCol7;   // 采集项       全选 // 其他信息采集分析
	CStatic* m_stcNetWorkCard;
	CStatic* m_stcHardware;
	CStatic* m_stcClipboard; 
	CStatic* m_stcWireless;
//	CStatic * m_stcUSN;//usn
//	CStatic * m_stcUSN;//usn
//	CStatic * m_stcDns;//dns

	CStatic *m_stcSelTime; // 选择时间
	CStatic *m_stcBegTime;
	CStatic *m_stcEndTime;
	CStatic *m_stcSelDisk; // 选择盘符

	static CString m_strDisk;  // 保存获取的系统盘符 "C:;D:;E:;"

	static CString m_strSelDisk;  //  保存用户选择的盘符

	// 记录鼠标左键 按下 和松开 的坐标位置
	static CPoint m_LBtnDownPos;
	static CPoint m_LBtnUpPos;

	// 标记 是否选中盘符
	static BOOL m_bIsDisk1;  
	static BOOL m_bIsDisk2;
	static BOOL m_bIsDisk3;
	static BOOL m_bIsDisk4;
	static BOOL m_bIsDisk5;
	static BOOL m_bIsDisk6;
	static BOOL m_bIsDisk7;
	static BOOL m_bIsDisk8;
	static BOOL m_bIsAllSel;	// 全选

	// 标记 是否响应鼠标点击事件,(显示盘符的响应,没显示的不响应)
	static BOOL m_bIsShowDisk1;
	static BOOL m_bIsShowDisk2;
	static BOOL m_bIsShowDisk3;
	static BOOL m_bIsShowDisk4;
	static BOOL m_bIsShowDisk5;
	static BOOL m_bIsShowDisk6;
	static BOOL m_bIsShowDisk7;
	static BOOL m_bIsShowDisk8;

	


	// 用于记录选择框状态，false为未选择， true为已选择
	static BOOL m_bIsWEBSel;
	static BOOL m_bIsVirusSel;
	static BOOL m_bIsHostLogSel;
	static BOOL m_bIsFileOperationSel;
	static BOOL m_bIsInterSel;
	static BOOL m_bIsPortSel;
	static BOOL m_bIsProcessSel;
	static BOOL m_bIsServiceSel;
	static BOOL m_bIsSoftWareSel;
	static BOOL m_bIsAccountSel;
	static BOOL m_bIsClipboardSel;
	static BOOL m_bIsFileShareSel;
	static BOOL m_bIsUSBSel;
	static BOOL m_bIsAnalyzeSel;
	static BOOL m_bIsSel15;
	static BOOL m_bIsUSNSel;//usn
	static BOOL m_bIsDNSSel;//dns记录
	static BOOL m_bIsARPSel;//arp记录
	static BOOL m_bIsLogPolicySel;//日志策略
	static BOOL m_bIsPathInfoSel;//系统补丁
	static BOOL m_bIsFileInfoSel;//磁盘文件
	static BOOL m_bIsMemorySel;//内存镜像
	static BOOL m_bIsStartUpSel;//启动项
	static BOOL m_bIsHardwareSel;//硬件信息
	static BOOL m_bIsWirelessSel;//无线通讯设备
	static BOOL m_bIsTaskListSel;//计划任务
	static BOOL m_bIsHostBaseSel;//操作系统
	static BOOL m_bIsNetWorkCardSel;//网卡
	static BOOL m_bIsDbLogSel;//数据库日志

	static BOOL m_bIsSelCol1;	// 全选 第1列 // 主机资产采集分析
	static BOOL m_bIsSelCol2;	// 全选 第2列 // 系统信息采集分析
	static BOOL m_bIsSelCol3;	// 全选 第3列 // web信息采集分析
	static BOOL m_bIsSelCol4;	// 全选 第4列 // 数据库日志采集分析
	static BOOL m_bIsSelCol5;	// 全选 第5列 // Windows日志采集分析
	static BOOL m_bIsSelCol6;	// 全选 第6列 // 磁盘文件信息采集分析
	static BOOL m_bIsSelCol7;	// 全选 第7列 // 其他信息采集分析
protected:
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnPaint();
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnTimer(UINT_PTR nIDEvent);
	
};


